package com.skivingcloud.report.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serial;

/**
 * 查询报表模板表格数据和配置信息表 实体类。
 *
 * @author skivingcloud
 * @since 2024-11-13
 */
@Schema(description = "查询报表模板表格数据和配置信息表")
@Table("report_luckysheet_report_cell")
public class ReportLuckysheetReportCell implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Id
    @Schema(description = "主键")
    private String id;

    /**
     * 模板id
     */
    @Schema(description = "模板id")
    private String tplId;

    /**
     * 模板sheetid
     */
    @Schema(description = "模板sheetid")
    private String sheetId;

    @Schema(description = "")
    private String datasetName;

    /**
     * 横坐标
     */
    @Schema(description = "横坐标")
    private Integer coordsx;

    /**
     * 纵坐标
     */
    @Schema(description = "纵坐标")
    private Integer coordsy;

    /**
     * 单元格扩展方向 1不扩展 2纵向扩展 3横向扩展 4交叉扩展
     */
    @Schema(description = "单元格扩展方向 1不扩展 2纵向扩展 3横向扩展 4交叉扩展")
    private String cellExtend;

    /**
     * 单元格值
     */
    @Schema(description = "单元格值")
    private String cellValue;

    /**
     * 单元格配置
     */
    @Schema(description = "单元格配置")
    private String cellData;

    /**
     * 单元格内容类型 1固定值 2变量 3循环块
     */
    @Schema(description = "单元格内容类型 1固定值 2变量 3循环块")
    private String cellValueType;

    /**
     * 聚合类型
     */
    @Schema(description = "聚合类型")
    private String aggregateType;

    /**
     * 分组属性 
     */
    @Schema(description = "分组属性 ")
    private String groupProperty;

    /**
     * 是否超链接 1是 0否
     */
    @Schema(description = "是否超链接 1是 0否")
    private String isLink;

    /**
     * 超链接配置
     */
    @Schema(description = "超链接配置")
    private String linkConfig;

    /**
     * 是否是合并单元格 1是 0否
     */
    @Schema(description = "是否是合并单元格 1是 0否")
    private String isMerge;

    /**
     * 合并行数
     */
    @Schema(description = "合并行数")
    private Integer rowSpan;

    /**
     * 合并列数
     */
    @Schema(description = "合并列数")
    private Integer colSpan;

    /**
     * 函数类型 1求和 2求平均值 3最大值 4最小值
     */
    @Schema(description = "函数类型 1求和 2求平均值 3最大值 4最小值")
    private String cellFunction;

    /**
     * 聚合函数小数位数
     */
    @Schema(description = "聚合函数小数位数")
    private Integer digit;

    /**
     * 分组依赖行号
     */
    @Schema(description = "分组依赖行号")
    private String groupSummaryDependencyR;

    /**
     * 分组依赖列号
     */
    @Schema(description = "分组依赖列号")
    private String groupSummaryDependencyC;

    /**
     * 数据来源 1默认 2原始数据 3单元格
     */
    @Schema(description = "数据来源 1默认 2原始数据 3单元格")
    private String dataFrom;

    /**
     * 合并单元格是否合一
     */
    @Schema(description = "合并单元格是否合一")
    private String isGroupMerge;

    /**
     * 是否是函数 1是 0否
     */
    @Schema(description = "是否是函数 1是 0否")
    private String isFunction;

    /**
     * 是否预警
     */
    @Schema(description = "是否预警")
    private String warning;

    /**
     * 预警规则
     */
    @Schema(description = "预警规则")
    private String warningRules;

    /**
     * 预警颜色
     */
    @Schema(description = "预警颜色")
    private String warningColor;

    /**
     * 预警阈值
     */
    @Schema(description = "预警阈值")
    private String threshold;

    /**
     * 预警内容
     */
    @Schema(description = "预警内容")
    private String warningContent;

    /**
     * 数据是否被其他单元格依赖 1是 0否 
     */
    @Schema(description = "数据是否被其他单元格依赖 1是 0否 ")
    private String isRelied;

    /**
     * 依赖单元格坐标，多个单元格之间用逗号分割 
     */
    @Schema(description = "依赖单元格坐标，多个单元格之间用逗号分割 ")
    private String relyCells;

    /**
     * 是否是数据字典 
     */
    @Schema(description = "是否是数据字典 ")
    private String isDict;

    /**
     * 数据字典数据源id
     */
    @Schema(description = "数据字典数据源id")
    private String datasourceId;

    /**
     * 数据字典类型
     */
    @Schema(description = "数据字典类型")
    private String dictType;

    /**
     * 是否交替颜色1是 0否
     */
    @Schema(description = "是否交替颜色1是 0否")
    private String alternateFormat;

    /**
     * 奇数行背景颜色
     */
    @Schema(description = "奇数行背景颜色")
    private String alternateFormatBcOdd;

    /**
     * 偶数行背景颜色
     */
    @Schema(description = "偶数行背景颜色")
    private String alternateFormatBcEven;

    /**
     * 奇数行字体颜色
     */
    @Schema(description = "奇数行字体颜色")
    private String alternateFormatFcOdd;

    /**
     * 偶数行字体颜色
     */
    @Schema(description = "偶数行字体颜色")
    private String alternateFormatFcEven;

    /**
     * 是否有单元格过滤条件 1是 0否
     */
    @Schema(description = "是否有单元格过滤条件 1是 0否")
    private String isConditions;

    /**
     * 单元格过滤条件
     */
    @Schema(description = "单元格过滤条件")
    private String cellConditions;

    /**
     * 过滤类型 and or
     */
    @Schema(description = "过滤类型 and or")
    private String filterType;

    /**
     * 是否有隐藏条件 1是 0否
     */
    @Schema(description = "是否有隐藏条件 1是 0否")
    private String isHiddenConditions;

    /**
     * 隐藏条件类型 and or
     */
    @Schema(description = "隐藏条件类型 and or")
    private String hiddenType;

    /**
     * 隐藏条件
     */
    @Schema(description = "隐藏条件")
    private String hiddenConditions;

    /**
     * 是否是图表中的单元格属性 1是 0否
     */
    @Schema(description = "是否是图表中的单元格属性 1是 0否")
    private String isChartAttr;

    /**
     * 图表唯一标识，多个图表用,分隔
     */
    @Schema(description = "图表唯一标识，多个图表用,分隔")
    private String chartIds;

    /**
     * 图表系列名称
     */
    @Schema(description = "图表系列名称")
    private String seriesName;

    /**
     * 是否是图表的第一个单元格 1是 0否
     */
    @Schema(description = "是否是图表的第一个单元格 1是 0否")
    private String isChartCell;

    /**
     * 是否是数据校验项 1是 0否
     */
    @Schema(description = "是否是数据校验项 1是 0否")
    private String isDataVerification;

    /**
     * 数据校验项目
     */
    @Schema(description = "数据校验项目")
    private String dataVerification;

    /**
     * 是否下钻
     */
    @Schema(description = "是否下钻")
    private String isDrill;

    /**
     * 下钻报表id
     */
    @Schema(description = "下钻报表id")
    private String drillId;

    /**
     * 下钻属性
     */
    @Schema(description = "下钻属性")
    private String drillAttrs;

    /**
     * 是否数值单位转换
     */
    @Schema(description = "是否数值单位转换")
    private String unitTransfer;

    /**
     * 转换方式 1乘法 2除法
     */
    @Schema(description = "转换方式 1乘法 2除法")
    private String transferType;

    /**
     * 倍数
     */
    @Schema(description = "倍数")
    private String multiple;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @Schema(description = "更新人")
    private String updater;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 是否删除 1是 0否
     */
    @Schema(description = "是否删除 1是 0否")
    private String delFlag;

    /**
     * 是否需要小计
     */
    @Schema(description = "是否需要小计")
    private String isSubtotal;

    /**
     * 小计单元格
     */
    @Schema(description = "小计单元格")
    private String subtotalCells;

    /**
     * 是否有小计公式链
     */
    @Schema(description = "是否有小计公式链")
    private String isSubtotalCalc;

    /**
     * 小计公式链
     */
    @Schema(description = "小计公式链")
    private String subtotalCalc;

    /**
     * 小计属性
     */
    @Schema(description = "小计属性")
    private String subtotalAttrs;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTplId() {
        return tplId;
    }

    public void setTplId(String tplId) {
        this.tplId = tplId;
    }

    public String getSheetId() {
        return sheetId;
    }

    public void setSheetId(String sheetId) {
        this.sheetId = sheetId;
    }

    public String getDatasetName() {
        return datasetName;
    }

    public void setDatasetName(String datasetName) {
        this.datasetName = datasetName;
    }

    public Integer getCoordsx() {
        return coordsx;
    }

    public void setCoordsx(Integer coordsx) {
        this.coordsx = coordsx;
    }

    public Integer getCoordsy() {
        return coordsy;
    }

    public void setCoordsy(Integer coordsy) {
        this.coordsy = coordsy;
    }

    public String getCellExtend() {
        return cellExtend;
    }

    public void setCellExtend(String cellExtend) {
        this.cellExtend = cellExtend;
    }

    public String getCellValue() {
        return cellValue;
    }

    public void setCellValue(String cellValue) {
        this.cellValue = cellValue;
    }

    public String getCellData() {
        return cellData;
    }

    public void setCellData(String cellData) {
        this.cellData = cellData;
    }

    public String getCellValueType() {
        return cellValueType;
    }

    public void setCellValueType(String cellValueType) {
        this.cellValueType = cellValueType;
    }

    public String getAggregateType() {
        return aggregateType;
    }

    public void setAggregateType(String aggregateType) {
        this.aggregateType = aggregateType;
    }

    public String getGroupProperty() {
        return groupProperty;
    }

    public void setGroupProperty(String groupProperty) {
        this.groupProperty = groupProperty;
    }

    public String getIsLink() {
        return isLink;
    }

    public void setIsLink(String isLink) {
        this.isLink = isLink;
    }

    public String getLinkConfig() {
        return linkConfig;
    }

    public void setLinkConfig(String linkConfig) {
        this.linkConfig = linkConfig;
    }

    public String getIsMerge() {
        return isMerge;
    }

    public void setIsMerge(String isMerge) {
        this.isMerge = isMerge;
    }

    public Integer getRowSpan() {
        return rowSpan;
    }

    public void setRowSpan(Integer rowSpan) {
        this.rowSpan = rowSpan;
    }

    public Integer getColSpan() {
        return colSpan;
    }

    public void setColSpan(Integer colSpan) {
        this.colSpan = colSpan;
    }

    public String getCellFunction() {
        return cellFunction;
    }

    public void setCellFunction(String cellFunction) {
        this.cellFunction = cellFunction;
    }

    public Integer getDigit() {
        return digit;
    }

    public void setDigit(Integer digit) {
        this.digit = digit;
    }

    public String getGroupSummaryDependencyR() {
        return groupSummaryDependencyR;
    }

    public void setGroupSummaryDependencyR(String groupSummaryDependencyR) {
        this.groupSummaryDependencyR = groupSummaryDependencyR;
    }

    public String getGroupSummaryDependencyC() {
        return groupSummaryDependencyC;
    }

    public void setGroupSummaryDependencyC(String groupSummaryDependencyC) {
        this.groupSummaryDependencyC = groupSummaryDependencyC;
    }

    public String getDataFrom() {
        return dataFrom;
    }

    public void setDataFrom(String dataFrom) {
        this.dataFrom = dataFrom;
    }

    public String getIsGroupMerge() {
        return isGroupMerge;
    }

    public void setIsGroupMerge(String isGroupMerge) {
        this.isGroupMerge = isGroupMerge;
    }

    public String getIsFunction() {
        return isFunction;
    }

    public void setIsFunction(String isFunction) {
        this.isFunction = isFunction;
    }

    public String getWarning() {
        return warning;
    }

    public void setWarning(String warning) {
        this.warning = warning;
    }

    public String getWarningRules() {
        return warningRules;
    }

    public void setWarningRules(String warningRules) {
        this.warningRules = warningRules;
    }

    public String getWarningColor() {
        return warningColor;
    }

    public void setWarningColor(String warningColor) {
        this.warningColor = warningColor;
    }

    public String getThreshold() {
        return threshold;
    }

    public void setThreshold(String threshold) {
        this.threshold = threshold;
    }

    public String getWarningContent() {
        return warningContent;
    }

    public void setWarningContent(String warningContent) {
        this.warningContent = warningContent;
    }

    public String getIsRelied() {
        return isRelied;
    }

    public void setIsRelied(String isRelied) {
        this.isRelied = isRelied;
    }

    public String getRelyCells() {
        return relyCells;
    }

    public void setRelyCells(String relyCells) {
        this.relyCells = relyCells;
    }

    public String getIsDict() {
        return isDict;
    }

    public void setIsDict(String isDict) {
        this.isDict = isDict;
    }

    public String getDatasourceId() {
        return datasourceId;
    }

    public void setDatasourceId(String datasourceId) {
        this.datasourceId = datasourceId;
    }

    public String getDictType() {
        return dictType;
    }

    public void setDictType(String dictType) {
        this.dictType = dictType;
    }

    public String getAlternateFormat() {
        return alternateFormat;
    }

    public void setAlternateFormat(String alternateFormat) {
        this.alternateFormat = alternateFormat;
    }

    public String getAlternateFormatBcOdd() {
        return alternateFormatBcOdd;
    }

    public void setAlternateFormatBcOdd(String alternateFormatBcOdd) {
        this.alternateFormatBcOdd = alternateFormatBcOdd;
    }

    public String getAlternateFormatBcEven() {
        return alternateFormatBcEven;
    }

    public void setAlternateFormatBcEven(String alternateFormatBcEven) {
        this.alternateFormatBcEven = alternateFormatBcEven;
    }

    public String getAlternateFormatFcOdd() {
        return alternateFormatFcOdd;
    }

    public void setAlternateFormatFcOdd(String alternateFormatFcOdd) {
        this.alternateFormatFcOdd = alternateFormatFcOdd;
    }

    public String getAlternateFormatFcEven() {
        return alternateFormatFcEven;
    }

    public void setAlternateFormatFcEven(String alternateFormatFcEven) {
        this.alternateFormatFcEven = alternateFormatFcEven;
    }

    public String getIsConditions() {
        return isConditions;
    }

    public void setIsConditions(String isConditions) {
        this.isConditions = isConditions;
    }

    public String getCellConditions() {
        return cellConditions;
    }

    public void setCellConditions(String cellConditions) {
        this.cellConditions = cellConditions;
    }

    public String getFilterType() {
        return filterType;
    }

    public void setFilterType(String filterType) {
        this.filterType = filterType;
    }

    public String getIsHiddenConditions() {
        return isHiddenConditions;
    }

    public void setIsHiddenConditions(String isHiddenConditions) {
        this.isHiddenConditions = isHiddenConditions;
    }

    public String getHiddenType() {
        return hiddenType;
    }

    public void setHiddenType(String hiddenType) {
        this.hiddenType = hiddenType;
    }

    public String getHiddenConditions() {
        return hiddenConditions;
    }

    public void setHiddenConditions(String hiddenConditions) {
        this.hiddenConditions = hiddenConditions;
    }

    public String getIsChartAttr() {
        return isChartAttr;
    }

    public void setIsChartAttr(String isChartAttr) {
        this.isChartAttr = isChartAttr;
    }

    public String getChartIds() {
        return chartIds;
    }

    public void setChartIds(String chartIds) {
        this.chartIds = chartIds;
    }

    public String getSeriesName() {
        return seriesName;
    }

    public void setSeriesName(String seriesName) {
        this.seriesName = seriesName;
    }

    public String getIsChartCell() {
        return isChartCell;
    }

    public void setIsChartCell(String isChartCell) {
        this.isChartCell = isChartCell;
    }

    public String getIsDataVerification() {
        return isDataVerification;
    }

    public void setIsDataVerification(String isDataVerification) {
        this.isDataVerification = isDataVerification;
    }

    public String getDataVerification() {
        return dataVerification;
    }

    public void setDataVerification(String dataVerification) {
        this.dataVerification = dataVerification;
    }

    public String getIsDrill() {
        return isDrill;
    }

    public void setIsDrill(String isDrill) {
        this.isDrill = isDrill;
    }

    public String getDrillId() {
        return drillId;
    }

    public void setDrillId(String drillId) {
        this.drillId = drillId;
    }

    public String getDrillAttrs() {
        return drillAttrs;
    }

    public void setDrillAttrs(String drillAttrs) {
        this.drillAttrs = drillAttrs;
    }

    public String getUnitTransfer() {
        return unitTransfer;
    }

    public void setUnitTransfer(String unitTransfer) {
        this.unitTransfer = unitTransfer;
    }

    public String getTransferType() {
        return transferType;
    }

    public void setTransferType(String transferType) {
        this.transferType = transferType;
    }

    public String getMultiple() {
        return multiple;
    }

    public void setMultiple(String multiple) {
        this.multiple = multiple;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getUpdater() {
        return updater;
    }

    public void setUpdater(String updater) {
        this.updater = updater;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getIsSubtotal() {
        return isSubtotal;
    }

    public void setIsSubtotal(String isSubtotal) {
        this.isSubtotal = isSubtotal;
    }

    public String getSubtotalCells() {
        return subtotalCells;
    }

    public void setSubtotalCells(String subtotalCells) {
        this.subtotalCells = subtotalCells;
    }

    public String getIsSubtotalCalc() {
        return isSubtotalCalc;
    }

    public void setIsSubtotalCalc(String isSubtotalCalc) {
        this.isSubtotalCalc = isSubtotalCalc;
    }

    public String getSubtotalCalc() {
        return subtotalCalc;
    }

    public void setSubtotalCalc(String subtotalCalc) {
        this.subtotalCalc = subtotalCalc;
    }

    public String getSubtotalAttrs() {
        return subtotalAttrs;
    }

    public void setSubtotalAttrs(String subtotalAttrs) {
        this.subtotalAttrs = subtotalAttrs;
    }

}
